package ejb.casacentral.persistence.entity;

import java.io.Serializable;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;


@Entity
@Table
@NamedQueries({
	@NamedQuery(name ="Rodamiento.todas",query="select s from Rodamiento s "),
	@NamedQuery(name ="Rodamiento.porCodigo",query="select s from Rodamiento s where s.codigo = :codigo"),
	@NamedQuery(name ="Rodamiento.porCodigos",query="select s from Rodamiento s where s.codigo in (:codigos)")
})
public class Rodamiento implements Serializable{
	
	
	/**
	 * 
	 */
	private static final long serialVersionUID = -5754138217743467049L;
	@Id
	private String codigo;
	@Column
	private String caracteristica;
	@Column
	private String marca;
	@Column
	private String origen;
	@Column
	private String descripcion;
	@ManyToOne(cascade=CascadeType.ALL)
	private Proveedor proveedor;
	
	@Override
	public String toString() {
		return "Rodamiento [codigo=" + codigo + ", caracteristica="
				+ caracteristica + ", marca=" + marca + ", origen=" + origen
				+ ", descripcion=" + descripcion + ", proveedor=" + proveedor
				+ "]";
	}
	public String getCodigo() {
		return codigo;
	}
	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}
	public String getCaracteristica() {
		return caracteristica;
	}
	public void setCaracteristica(String caracteristica) {
		this.caracteristica = caracteristica;
	}
	public String getMarca() {
		return marca;
	}
	public void setMarca(String marca) {
		this.marca = marca;
	}
	public String getOrigen() {
		return origen;
	}
	public void setOrigen(String origen) {
		this.origen = origen;
	}
	public String getDescripcion() {
		return descripcion;
	}
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	public Proveedor getProveedor() {
		return proveedor;
	}
	public void setProveedor(Proveedor proveedor) {
		this.proveedor = proveedor;
	}
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((caracteristica == null) ? 0 : caracteristica.hashCode());
		result = prime * result + ((codigo == null) ? 0 : codigo.hashCode());
		result = prime * result
				+ ((descripcion == null) ? 0 : descripcion.hashCode());
		result = prime * result + ((marca == null) ? 0 : marca.hashCode());
		result = prime * result + ((origen == null) ? 0 : origen.hashCode());
		result = prime * result
				+ ((proveedor == null) ? 0 : proveedor.hashCode());
		return result;
	}
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Rodamiento other = (Rodamiento) obj;
		if (caracteristica == null) {
			if (other.caracteristica != null)
				return false;
		} else if (!caracteristica.equals(other.caracteristica))
			return false;
		if (codigo == null) {
			if (other.codigo != null)
				return false;
		} else if (!codigo.equals(other.codigo))
			return false;
		if (descripcion == null) {
			if (other.descripcion != null)
				return false;
		} else if (!descripcion.equals(other.descripcion))
			return false;
		if (marca == null) {
			if (other.marca != null)
				return false;
		} else if (!marca.equals(other.marca))
			return false;
		if (origen == null) {
			if (other.origen != null)
				return false;
		} else if (!origen.equals(other.origen))
			return false;
		if (proveedor == null) {
			if (other.proveedor != null)
				return false;
		} else if (!proveedor.equals(other.proveedor))
			return false;
		return true;
	}
	public Rodamiento(String codigo, String caracteristica, String marca,
			String origen, String descripcion, Proveedor proveedor) {
		super();
		this.codigo = codigo;
		this.caracteristica = caracteristica;
		this.marca = marca;
		this.origen = origen;
		this.descripcion = descripcion;
		this.proveedor = proveedor;
	}
	public Rodamiento() {
		super();
	}
	
	
	
	

	

}
